Bill Kayser
Distinguished Engineer, New Relic
March, 2016
March, 2016
Bill Kayser
Distinguished Engineer, New Relic
March, 2016



How cheaply can we collect the data?
The smaller the data the more things you can measure.
The less space it takes the more options you have for screen layout.
Can you reduce your measurement in X, \(x_1 .. x_n\), by combining values using a reduce function, \(f(a,b)\)?
\[ X_{ab} = f(a, b)\] \[ X_{cd} = f(c, d)\] \[ X_{abcd} = f(X_{ab}, X_{cd})\]
Space required grows linearly with length of history; a simple time series
Examples:
The amount of storage required depends on the length of history but also the granularity of the data.
You need N buckets in each time period.
Examples:
Requires keeping a complete history of every measurement.
Space is proportional to the number of measures.
If response times had a normal distribution we could show everything using simple statistics and estimated percentiles:
Summary Statistics Don't Work on Non-Gassian Data
Instead of collecting the sum of the response times, you collect the sum of the log of the response times:
\(GM = exp\left(\frac1n\sum_{i=1}^n ln(t_i)\right)\)
Instead of collecting the sum of squares to calculate the standard deviations, you collect the sum of the squared log of response times:
\(GSD = exp\left(\sqrt{\frac1n\sum_{i=1}^nln(t_i)^2-\left(\frac1n\sum_{i=1}^nln(t_i)\right)^2}\right)\)
\(\left[\frac{GM}{GSD^Z}\dotsb GM\times GSD^Z\right]\)
…where \(z = 0.674\) from the Standard Normal Distribution.
The Apdex Score is determined by the formula:
\[\frac{N_s + (1/2 * N_t)}{N}\]
Where:
\(T\) is referred to as the Apdex T parameter and is set individually for each application based on what is considered a satisfactory response time from a business perspective.
Apdex Scores for a group of apps can be enumerated with guages, but a richer visual is the "Apdex Button".
Looking at collection of related things
Plots of throughput on the X axis and latency on the Y axis. Color is time of day.
Bill Kayser (@bravoking) - www.newrelic.com
github.com/bkayser/NewRelicR